package com.edooteach.api.servcice;

import java.util.List;
import java.util.Map;
import com.edoomath.entity.course.Course;
import com.edoomath.entity.course.CourseMaterail;
import com.edoomath.entity.course.CourseUnit;
import com.edoomath.entity.course.MaterialType;
import com.edoomath.entity.mall.Sku;

/**
 * 
 * @author mohanlan
 *
 */
public interface CourseService extends DataService<Course> {
    
    /**
     * 
     * @return
     */
    public List<Course> listAll();
    
    /**
     * 
     * @param id
     * @return
     */
    public List<CourseUnit> listUnit(Long id);
    
    /**
     * 
     * @param unitId
     * @return
     */
    public CourseUnit loadUnit(Long unitId);
    
    
    /**
     * 
     * @param id
     * @return
     */
    public List<CourseMaterail> listMaterial(Long id);
    
    /**
     * 
     * @param id
     * @return
     */
    public List<CourseMaterail> listMaterialByUnit(Long id);
    
    /**
     * 
     * @param id
     * @param materialType
     * @return
     */
    public CourseMaterail loadByUnitType(Long id, MaterialType materialType);
    
    /**
     * 
     * @param id
     * @param materialType
     * @return
     */
    public List<CourseMaterail> listMaterialByUnitType(Long id, MaterialType materialType);
    
    /**
     * 
     * @param id
     * @return
     */
    public List<CourseMaterail> listMaterialByType(Long id, MaterialType materialType);

    /**
     * @param sku
     * @return
     */
    public List<Course> listBySku(Sku sku);
    
    /**
     * 
     */
    public Map<String, List<Course>> listBySku(List<Sku> sku);
    
}
